package pe.com.tma.model;

import java.io.Serializable;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@NamedQueries({
  @NamedQuery(name = "Instrumento.findAll", query = "select o from Instrumento o")
})
@Table(name = "\"instrumento\"")
public class Instrumento implements Serializable {
    @Column(name="codIsin")
    private String codIsin;
    @Column(name="codMoneda")
    private Integer codMoneda;
    @Column(name="descripcion")
    private String descripcion;
    @Column(name="emisor")
    private String emisor;
    @Column(name="estado")
    private String estado;
    @Id
    @Column(name="idInstrumento", nullable = false)
    private String idInstrumento;
    @Column(name="sector")
    private Integer sector;
    @Column(name="tipoRenta")
    private String tipoRenta;
    @Column(name="valorNominal")
    private Number valorNominal;
    @OneToMany(mappedBy = "instrumento")
    private List<Cartera> carteraList;
    @OneToMany(mappedBy = "instrumento")
    private List<Poliza> polizaList;
    @OneToMany(mappedBy = "instrumento")
    private List<Orden> ordenList;

    public Instrumento() {
    }

    public Instrumento(String codIsin, Integer codMoneda, String descripcion,
                       String emisor, String estado, String idInstrumento,
                       Integer sector, String tipoRenta, Number valorNominal) {
        this.codIsin = codIsin;
        this.codMoneda = codMoneda;
        this.descripcion = descripcion;
        this.emisor = emisor;
        this.estado = estado;
        this.idInstrumento = idInstrumento;
        this.sector = sector;
        this.tipoRenta = tipoRenta;
        this.valorNominal = valorNominal;
    }

    public String getCodIsin() {
        return codIsin;
    }

    public void setCodIsin(String codIsin) {
        this.codIsin = codIsin;
    }

    public Integer getCodMoneda() {
        return codMoneda;
    }

    public void setCodMoneda(Integer codMoneda) {
        this.codMoneda = codMoneda;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getEmisor() {
        return emisor;
    }

    public void setEmisor(String emisor) {
        this.emisor = emisor;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getIdInstrumento() {
        return idInstrumento;
    }

    public void setIdInstrumento(String idInstrumento) {
        this.idInstrumento = idInstrumento;
    }

    public Integer getSector() {
        return sector;
    }

    public void setSector(Integer sector) {
        this.sector = sector;
    }

    public String getTipoRenta() {
        return tipoRenta;
    }

    public void setTipoRenta(String tipoRenta) {
        this.tipoRenta = tipoRenta;
    }

    public Number getValorNominal() {
        return valorNominal;
    }

    public void setValorNominal(Number valorNominal) {
        this.valorNominal = valorNominal;
    }

    public List<Cartera> getCarteraList() {
        return carteraList;
    }

    public void setCarteraList(List<Cartera> carteraList) {
        this.carteraList = carteraList;
    }

    public Cartera addCartera(Cartera cartera) {
        getCarteraList().add(cartera);
        cartera.setInstrumento(this);
        return cartera;
    }

    public Cartera removeCartera(Cartera cartera) {
        getCarteraList().remove(cartera);
        cartera.setInstrumento(null);
        return cartera;
    }

    public List<Poliza> getPolizaList() {
        return polizaList;
    }

    public void setPolizaList(List<Poliza> polizaList) {
        this.polizaList = polizaList;
    }

    public Poliza addPoliza(Poliza poliza) {
        getPolizaList().add(poliza);
        poliza.setInstrumento(this);
        return poliza;
    }

    public Poliza removePoliza(Poliza poliza) {
        getPolizaList().remove(poliza);
        poliza.setInstrumento(null);
        return poliza;
    }

    public List<Orden> getOrdenList() {
        return ordenList;
    }

    public void setOrdenList(List<Orden> ordenList) {
        this.ordenList = ordenList;
    }

    public Orden addOrden(Orden orden) {
        getOrdenList().add(orden);
        orden.setInstrumento(this);
        return orden;
    }

    public Orden removeOrden(Orden orden) {
        getOrdenList().remove(orden);
        orden.setInstrumento(null);
        return orden;
    }
}
